名称:UDP接收

符号:UDP_RECV

说明:

    远程UDP主机发送给本机消息数据将被保存在套接字缓存区中,通过UDP_RECV指令从指定套接字缓存区中获取已经收到的消息数据。

图片:

参数:

参数名称 数据类型 IN/OUT 参数作用 说明
EXECUTE BOOL IN 功能块触发
上升沿触发指令执行
SOCKFD DINT IN 套接字
套接字
DATA REF_TO_BYTE IN 存储首地址
待发送数据块首地址(不可为空/NULL)
LENGTH WORD IN 最大长度
数据长度:1-1400,不可超过DATA实际大小
BUSY BOOL OUT 执行中
TRUE:执行中
DONE BOOL OUT 成功标志
TRUE:执行完成
ERROR BOOL OUT 出错标志
TRUE:执行出错
ACTUALLEN WORD OUT 接收长度
已接收数据长度
IPADDR ARRAY[0..3] OF BYTE OUT IP地址
远程发送方IP地址
PORT WORD OUT 端口号
远程发送方端口号
ERRORID WORD OUT 错误码
0:正常;其它:错误码值

错误码:

错误码 说明
0
无错误
4001H
客户逻辑取数据过慢,导致接收缓冲区内存不够
4002H
套接字号不是允许的范围
4004H
套接字没有连接

示例:

LD:

ST:



解释:

       当“Execute_UdpRecv1”操作数的信号状态从“0”变为“1”时,执行该指令,把收到的数据存入“DataRecv_UDP1”数组中,并且从“IPADDR1”和“PORT1”中得到远程设备的IP和端口号。每检测到一个信号上升沿,就执行一次接收。当实际接收大小“ACTUALLEN_UDP1”等于“10”时,表示接收完成,“DONE_UDP1”输出状态会变“1”,否则“ISBUSY_UDP1”输出状态为“1”,当发生错误的时候,“ISERROR_UDP1”输出状态变为“1”,且“ERRORID_UDP1”输出具体的错误码。